/*--------------------------------------------------*/
/*VirtualSociety System ServiceModuleTemplate Header File*/
/*CreateBy SRPLab                */
/*CreateDate: 2011-3-17  */
/*--------------------------------------------------*/
#ifndef SRPSHTMLENVENGINE_HEADERFILE
#define SRPSHTMLENVENGINE_HEADERFILE

#include "SRPSHtmlEnvEngine.h"

#if( VS_OS_TYPE == VS_OS_WINDOWS )
#pragma warning (disable:4819)
#pragma warning (disable:4244)
#pragma warning (disable:4996)
#pragma warning (disable:4800)
#endif

#pragma pack(4)

/*++++++++++++++++++++++++++++++++++++++++++++++++++*/
#define VSOBJNAME_SHTMLENVSITECLASS                                                                "SHtmlEnvSiteClass"
extern VS_UUID VSOBJID_SHtmlEnvSiteClass;
#define VSATTRDEPEND_SHTMLENVSITECLASS(X)  {{X[0].Type=51;X[0].Offset=0;}{X[1].Type=1;X[1].Offset=4;}{X[2].Type=6;X[2].Offset=8;}{X[3].Type=6;X[3].Offset=12;}}
#define VSATTRDEPENDNUM_SHTMLENVSITECLASS                                                          4
extern VS_INT32 SRPCALLBACK SHtmlEnvSiteClass_RequestRegisterObject( );

/*------Variable Index Define */
#define VSATTRINDEX_SHTMLENVSITECLASS_ROOTURL                                                      0
#define VSATTRINDEX_SHTMLENVSITECLASS_CASESENSITIVE                                                1
#define VSATTRINDEX_SHTMLENVSITECLASS_ACTIVENUMBER                                                 2
#define VSATTRINDEX_SHTMLENVSITECLASS_MAXUPLOADSIZE                                                3
#define VSATTRNUMBER_SHTMLENVSITECLASS                                                             4

/*------Local Define Function */
/*[Private Function] :     */
extern VS_UUID VSFUNCID_SHtmlEnvSiteClass_C_Mount;
#define VSFUNCRETURNDEPEND_SHTMLENVSITECLASS_C_MOUNT(X)  {}
#define VSFUNCRETURNDEPENDNUM_SHTMLENVSITECLASS_C_MOUNT                                            0
#define VSFUNCPARAMDEPEND_SHTMLENVSITECLASS_C_MOUNT(X)  {{X[0].Type=30;}{X[1].Type=30;}{X[2].Type=14;}}
#define VSFUNCPARAMDEPENDNUM_SHTMLENVSITECLASS_C_MOUNT                                             3

extern void SRPAPI SHtmlEnvSiteClass_C_Mount(void *Object,VS_CHAR * RootUrl,VS_CHAR * LocalPathOrFile,void *CallBackFunction);
typedef void (SRPAPI *SHtmlEnvSiteClass_C_MountProc)(void *Object,VS_CHAR * RootUrl,VS_CHAR * LocalPathOrFile,void *CallBackFunction);

/*[Private Function] : Mount(RootUrl,LocalPathOrFile,\"CallBackFuncName\"): bool=CallBack(CommInterface,HttpRequest)    */
extern VS_UUID VSFUNCID_SHtmlEnvSiteClass_Mount;
#define VSFUNCRETURNDEPEND_SHTMLENVSITECLASS_MOUNT(X)  {}
#define VSFUNCRETURNDEPENDNUM_SHTMLENVSITECLASS_MOUNT                                              0
#define VSFUNCPARAMDEPEND_SHTMLENVSITECLASS_MOUNT(X)  {}
#define VSFUNCPARAMDEPENDNUM_SHTMLENVSITECLASS_MOUNT                                               0

extern VS_INT32 SRPAPI SHtmlEnvSiteClass_Mount(void);
typedef VS_INT32 (SRPAPI *SHtmlEnvSiteClass_MountProc)(void);

/*[Private Function] :     */
extern VS_UUID VSFUNCID_SHtmlEnvSiteClass_C_UnMount;
#define VSFUNCRETURNDEPEND_SHTMLENVSITECLASS_C_UNMOUNT(X)  {}
#define VSFUNCRETURNDEPENDNUM_SHTMLENVSITECLASS_C_UNMOUNT                                          0
#define VSFUNCPARAMDEPEND_SHTMLENVSITECLASS_C_UNMOUNT(X)  {{X[0].Type=30;}{X[1].Type=30;}}
#define VSFUNCPARAMDEPENDNUM_SHTMLENVSITECLASS_C_UNMOUNT                                           2

extern void SRPAPI SHtmlEnvSiteClass_C_UnMount(void *Object,VS_CHAR * RootUrl,VS_CHAR * LocalPathOrFile);
typedef void (SRPAPI *SHtmlEnvSiteClass_C_UnMountProc)(void *Object,VS_CHAR * RootUrl,VS_CHAR * LocalPathOrFile);

/*[Private Function] : UnMount(RootUrl,LocalPathOrFile)    */
extern VS_UUID VSFUNCID_SHtmlEnvSiteClass_UnMount;
#define VSFUNCRETURNDEPEND_SHTMLENVSITECLASS_UNMOUNT(X)  {}
#define VSFUNCRETURNDEPENDNUM_SHTMLENVSITECLASS_UNMOUNT                                            0
#define VSFUNCPARAMDEPEND_SHTMLENVSITECLASS_UNMOUNT(X)  {}
#define VSFUNCPARAMDEPENDNUM_SHTMLENVSITECLASS_UNMOUNT                                             0

extern VS_INT32 SRPAPI SHtmlEnvSiteClass_UnMount(void);
typedef VS_INT32 (SRPAPI *SHtmlEnvSiteClass_UnMountProc)(void);

/*[Private Function] :     */
extern VS_UUID VSFUNCID_SHtmlEnvSiteClass_C_MountObject;
#define VSFUNCRETURNDEPEND_SHTMLENVSITECLASS_C_MOUNTOBJECT(X)  {}
#define VSFUNCRETURNDEPENDNUM_SHTMLENVSITECLASS_C_MOUNTOBJECT                                      0
#define VSFUNCPARAMDEPEND_SHTMLENVSITECLASS_C_MOUNTOBJECT(X)  {{X[0].Type=30;}{X[1].Type=57;}{X[2].Type=14;}}
#define VSFUNCPARAMDEPENDNUM_SHTMLENVSITECLASS_C_MOUNTOBJECT                                       3

extern void SRPAPI SHtmlEnvSiteClass_C_MountObject(void *Object,VS_CHAR * RootUrl,VS_OBJPTR EntityObject,void *CallBackFunction);
typedef void (SRPAPI *SHtmlEnvSiteClass_C_MountObjectProc)(void *Object,VS_CHAR * RootUrl,VS_OBJPTR EntityObject,void *CallBackFunction);

/*[Private Function] : MountObject(RootUrl,EntityObject,\"CallBackFuncName\"): bool=Object/EntityObject:CallBack(CommInterface,HttpRequest,Bin_RequestHeader,Bin_Request_Body)    */
extern VS_UUID VSFUNCID_SHtmlEnvSiteClass_MountObject;
#define VSFUNCRETURNDEPEND_SHTMLENVSITECLASS_MOUNTOBJECT(X)  {}
#define VSFUNCRETURNDEPENDNUM_SHTMLENVSITECLASS_MOUNTOBJECT                                        0
#define VSFUNCPARAMDEPEND_SHTMLENVSITECLASS_MOUNTOBJECT(X)  {}
#define VSFUNCPARAMDEPENDNUM_SHTMLENVSITECLASS_MOUNTOBJECT                                         0

extern VS_INT32 SRPAPI SHtmlEnvSiteClass_MountObject(void);
typedef VS_INT32 (SRPAPI *SHtmlEnvSiteClass_MountObjectProc)(void);

/*[Private Function] :     */
extern VS_UUID VSFUNCID_SHtmlEnvSiteClass_C_UnMountObject;
#define VSFUNCRETURNDEPEND_SHTMLENVSITECLASS_C_UNMOUNTOBJECT(X)  {}
#define VSFUNCRETURNDEPENDNUM_SHTMLENVSITECLASS_C_UNMOUNTOBJECT                                    0
#define VSFUNCPARAMDEPEND_SHTMLENVSITECLASS_C_UNMOUNTOBJECT(X)  {{X[0].Type=30;}}
#define VSFUNCPARAMDEPENDNUM_SHTMLENVSITECLASS_C_UNMOUNTOBJECT                                     1

extern void SRPAPI SHtmlEnvSiteClass_C_UnMountObject(void *Object,VS_CHAR * RootUrl);
typedef void (SRPAPI *SHtmlEnvSiteClass_C_UnMountObjectProc)(void *Object,VS_CHAR * RootUrl);

/*[Private Function] : UnMountObject(RootUrl)    */
extern VS_UUID VSFUNCID_SHtmlEnvSiteClass_UnMountObject;
#define VSFUNCRETURNDEPEND_SHTMLENVSITECLASS_UNMOUNTOBJECT(X)  {}
#define VSFUNCRETURNDEPENDNUM_SHTMLENVSITECLASS_UNMOUNTOBJECT                                      0
#define VSFUNCPARAMDEPEND_SHTMLENVSITECLASS_UNMOUNTOBJECT(X)  {}
#define VSFUNCPARAMDEPENDNUM_SHTMLENVSITECLASS_UNMOUNTOBJECT                                       0

extern VS_INT32 SRPAPI SHtmlEnvSiteClass_UnMountObject(void);
typedef VS_INT32 (SRPAPI *SHtmlEnvSiteClass_UnMountObjectProc)(void);

/*[Private Function] :     */
extern VS_UUID VSFUNCID_SHtmlEnvSiteClass_C_GetParentUrl;
#define VSFUNCRETURNDEPEND_SHTMLENVSITECLASS_C_GETPARENTURL(X)  {{X[0].Type=30;}}
#define VSFUNCRETURNDEPENDNUM_SHTMLENVSITECLASS_C_GETPARENTURL                                     1
#define VSFUNCPARAMDEPEND_SHTMLENVSITECLASS_C_GETPARENTURL(X)  {{X[0].Type=57;}}
#define VSFUNCPARAMDEPENDNUM_SHTMLENVSITECLASS_C_GETPARENTURL                                      1

extern VS_CHAR * SRPAPI SHtmlEnvSiteClass_C_GetParentUrl(void *Object,VS_OBJPTR EntityObject);
typedef VS_CHAR * (SRPAPI *SHtmlEnvSiteClass_C_GetParentUrlProc)(void *Object,VS_OBJPTR EntityObject);

/*[Private Function] : Url=GetParentUrl(EntityObject)    */
extern VS_UUID VSFUNCID_SHtmlEnvSiteClass_GetParentUrl;
#define VSFUNCRETURNDEPEND_SHTMLENVSITECLASS_GETPARENTURL(X)  {}
#define VSFUNCRETURNDEPENDNUM_SHTMLENVSITECLASS_GETPARENTURL                                       0
#define VSFUNCPARAMDEPEND_SHTMLENVSITECLASS_GETPARENTURL(X)  {}
#define VSFUNCPARAMDEPENDNUM_SHTMLENVSITECLASS_GETPARENTURL                                        0

extern VS_INT32 SRPAPI SHtmlEnvSiteClass_GetParentUrl(void);
typedef VS_INT32 (SRPAPI *SHtmlEnvSiteClass_GetParentUrlProc)(void);

/*[Private Function] :     */
extern VS_UUID VSFUNCID_SHtmlEnvSiteClass_C_GetChildBody;
#define VSFUNCRETURNDEPEND_SHTMLENVSITECLASS_C_GETCHILDBODY(X)  {{X[0].Type=1;}}
#define VSFUNCRETURNDEPENDNUM_SHTMLENVSITECLASS_C_GETCHILDBODY                                     1
#define VSFUNCPARAMDEPEND_SHTMLENVSITECLASS_C_GETCHILDBODY(X)  {{X[0].Type=57;}{X[1].Type=14;}}
#define VSFUNCPARAMDEPENDNUM_SHTMLENVSITECLASS_C_GETCHILDBODY                                      2

extern VS_BOOL SRPAPI SHtmlEnvSiteClass_C_GetChildBody(void *Object,VS_OBJPTR ChildEntityObject,void *RetBody);
typedef VS_BOOL (SRPAPI *SHtmlEnvSiteClass_C_GetChildBodyProc)(void *Object,VS_OBJPTR ChildEntityObject,void *RetBody);

/*[Private Function] : bool=GetChildBody(ChildEntityObject,Bin_RetBody)    */
extern VS_UUID VSFUNCID_SHtmlEnvSiteClass_GetChildBody;
#define VSFUNCRETURNDEPEND_SHTMLENVSITECLASS_GETCHILDBODY(X)  {}
#define VSFUNCRETURNDEPENDNUM_SHTMLENVSITECLASS_GETCHILDBODY                                       0
#define VSFUNCPARAMDEPEND_SHTMLENVSITECLASS_GETCHILDBODY(X)  {}
#define VSFUNCPARAMDEPENDNUM_SHTMLENVSITECLASS_GETCHILDBODY                                        0

extern VS_INT32 SRPAPI SHtmlEnvSiteClass_GetChildBody(void);
typedef VS_INT32 (SRPAPI *SHtmlEnvSiteClass_GetChildBodyProc)(void);

extern VS_INT32 SRPCALLBACK SHtmlEnvSiteClass_OnSystemEvent(VS_ULONG FunctionChoice,void *EventPara);
extern VS_INT32 SRPCALLBACK SHtmlEnvSiteClass_OnSystemEditEvent(VS_ULONG FunctionChoice,void *EventPara);

struct StructOfAttachSHtmlEnvSiteClass{
};
struct StructOfSHtmlEnvSiteClass{
    //----local attribute
    VS_VSTRING      RootUrl;                      //
    VS_BOOL         CaseSensitive;                //valid before active, not change after active
    VS_INT8         Reserve2[3];                  
    VS_INT32        ActiveNumber;                 //
    VS_INT32        MaxUploadSize;                //kbytes
};

/*++++++++++++++++++++++++++++++++++++++++++++++++++*/
#define VSOBJNAME_SRPSHTMLENVENGINE                                                                "SRPSHtmlEnvEngine"
extern VS_UUID VSOBJID_SRPSHtmlEnvEngine;

/*++++++++++++++++++++++++++++++++++++++++++++++++++*/
//#define VSOBJNAME_BASICSERVICEITEM                                                                 "BasicServiceItem"
//UUID VSOBJID_BasicServiceItem;

#pragma pack()

#endif
